home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / MacTech® Magazine / Volume 07 - 1991 / 07.04 Apr 91 / Code Optimizing / Sources / Mxmpy.f.FPU.opt1.a < prev    next >
Encoding:
Text File  |  1990-04-14  |  4.2 KB  |  196 lines  |  [TEXT/MPS ]

  1. ;    Assembler source from Language Systems FORTRAN (Version 2.0 January 23, 1990)
  2. ;    Sat, Apr 14, 1990   16:42
  3. ;    Optimization Level 1.
  4.  
  5.         BLANKS ON
  6.         STRING ASIS
  7.         PRINT OFF
  8.         INCLUDE 'Traps.a'
  9.         INCLUDE 'ToolEqu.a'
  10.         INCLUDE 'QuickEqu.a'
  11.         INCLUDE 'SysEqu.a'
  12.         INCLUDE 'SANEMacs.a'
  13.         PRINT ON
  14.  
  15.         MACHINE MC68030
  16.         MC68881
  17.  ;  File "mxmpy.f";  Line          1
  18.         SEG    'mxmpy'
  19. MXMPY    PROC EXPORT
  20.         LINK    A6,#$FFFFFF50
  21.         MOVEM.L    D5-D7,-(SP)
  22.         FMOVE    FP7,-(SP)
  23.  ;  File "mxmpy.f";  Line         17
  24.         BRA        L10002
  25. L10001    EQU    *
  26.         MOVE.L    #$00000001,$FFFFFFAC(A6)
  27.         MOVEA.L    $0010(A6),A0
  28.         MOVE.L    (A0),$FFFFFFB0(A6)
  29.         MOVE.L    #$0000000C,$FFFFFF70(A6)
  30.         MOVEA.L    $0010(A6),A0
  31.         MOVE.L    (A0),D0
  32.         ASL.L    #2,D0
  33.         MOVE.L    D0,D1
  34.         ADD.L    D0,D0
  35.         ADD.L    D1,D0
  36.         MOVE.L    D0,$FFFFFF70(A6)
  37.         MOVE.L    $FFFFFF70(A6),$FFFFFFB4(A6)
  38.         MOVE.L    #$00000001,$FFFFFFB8(A6)
  39.         MOVEA.L    $000C(A6),A0
  40.         MOVE.L    (A0),$FFFFFFBC(A6)
  41.         MOVE.L    $FFFFFFB4(A6),$FFFFFF70(A6)
  42.         MOVEA.L    $000C(A6),A0
  43.         MOVE.L    $FFFFFF70(A6),D1
  44.         MULS.L    $0000(A0),D1
  45.         MOVE.L    D1,$FFFFFF70(A6)
  46.         MOVE.L    $FFFFFF70(A6),$FFFFFFC0(A6)
  47.         MOVE.L    #$00000001,$FFFFFFC4(A6)
  48.         MOVEA.L    $000C(A6),A0
  49.         MOVE.L    (A0),$FFFFFFC8(A6)
  50.         MOVE.L    #$0000000C,$FFFFFF78(A6)
  51.         MOVEA.L    $000C(A6),A0
  52.         MOVE.L    (A0),D0
  53.         ASL.L    #2,D0
  54.         MOVE.L    D0,D1
  55.         ADD.L    D0,D0
  56.         ADD.L    D1,D0
  57.         MOVE.L    D0,$FFFFFF78(A6)
  58.         MOVE.L    $FFFFFF78(A6),$FFFFFFCC(A6)
  59.         MOVE.L    #$00000001,$FFFFFFD0(A6)
  60.         MOVEA.L    $0008(A6),A0
  61.         MOVE.L    (A0),$FFFFFFD4(A6)
  62.         MOVE.L    $FFFFFFCC(A6),$FFFFFF78(A6)
  63.         MOVEA.L    $0008(A6),A0
  64.         MOVE.L    $FFFFFF78(A6),D1
  65.         MULS.L    $0000(A0),D1
  66.         MOVE.L    D1,$FFFFFF78(A6)
  67.         MOVE.L    $FFFFFF78(A6),$FFFFFFD8(A6)
  68.         MOVE.L    #$00000001,$FFFFFFDC(A6)
  69.         MOVEA.L    $0010(A6),A0
  70.         MOVE.L    (A0),$FFFFFFE0(A6)
  71.         MOVE.L    #$0000000C,$FFFFFF80(A6)
  72.         MOVEA.L    $0010(A6),A0
  73.         MOVE.L    (A0),D0
  74.         ASL.L    #2,D0
  75.         MOVE.L    D0,D1
  76.         ADD.L    D0,D0
  77.         ADD.L    D1,D0
  78.         MOVE.L    D0,$FFFFFF80(A6)
  79.         MOVE.L    $FFFFFF80(A6),$FFFFFFE4(A6)
  80.         MOVE.L    #$00000001,$FFFFFFE8(A6)
  81.         MOVEA.L    $0008(A6),A0
  82.         MOVE.L    (A0),$FFFFFFEC(A6)
  83.         MOVE.L    $FFFFFFE4(A6),$FFFFFF80(A6)
  84.         MOVEA.L    $0008(A6),A0
  85.         MOVE.L    $FFFFFF80(A6),D1
  86.         MULS.L    $0000(A0),D1
  87.         MOVE.L    D1,$FFFFFF80(A6)
  88.         MOVE.L    $FFFFFF80(A6),$FFFFFFF0(A6)
  89.         RTS
  90. L10002    EQU    *
  91.         BSR        L10001
  92.  ;  File "mxmpy.f";  Line         18
  93.         MOVE.L    #$00000001,$FFFFFFA0(A6)
  94.         MOVEA.L    $0010(A6),A1
  95.         MOVE.L    (A1),D5
  96.         BLE        L10004
  97. L10003    EQU    *
  98.  ;  File "mxmpy.f";  Line         19
  99.         MOVE.L    #$00000001,$FFFFFFA4(A6)
  100.         MOVEA.L    $0008(A6),A1
  101.         MOVE.L    (A1),D6
  102.         BLE        L10006
  103. L10005    EQU    *
  104.  ;  File "mxmpy.f";  Line         20
  105.         LEA        $FFFFFFF4(A6),A1
  106.         CLR.L    (A1)+
  107.         CLR.L    (A1)+
  108.         CLR.L    (A1)+
  109.  ;  File "mxmpy.f";  Line         21
  110.         MOVE.L    #$00000001,$FFFFFFA8(A6)
  111.         MOVEA.L    $000C(A6),A1
  112.         MOVE.L    (A1),D7
  113.         BLE        L10008
  114. L10007    EQU    *
  115.  ;  File "mxmpy.f";  Line         22
  116.         MOVE.L    $FFFFFFA0(A6),D1
  117.         SUB.L    $FFFFFFAC(A6),D1
  118.         ASL.L    #2,D1
  119.         MOVE.L    D1,D0
  120.         ADD.L    D1,D1
  121.         ADD.L    D0,D1
  122.         MOVE.L    $FFFFFFA8(A6),D2
  123.         SUB.L    $FFFFFFB8(A6),D2
  124.         MULS.L    $FFFFFFB4(A6),D2
  125.         ADD.L    D1,D2
  126.         MOVE.L    D2,$FFFFFF6C(A6)
  127.         MOVE.L    $FFFFFFA8(A6),D1
  128.         SUB.L    $FFFFFFC4(A6),D1
  129.         ASL.L    #2,D1
  130.         MOVE.L    D1,D0
  131.         ADD.L    D1,D1
  132.         ADD.L    D0,D1
  133.         MOVE.L    $FFFFFFA4(A6),D2
  134.         SUB.L    $FFFFFFD0(A6),D2
  135.         MULS.L    $FFFFFFCC(A6),D2
  136.         ADD.L    D1,D2
  137.         MOVE.L    D2,$FFFFFF70(A6)
  138.         MOVEA.L    $001C(A6),A0
  139.         ADDA.L    $FFFFFF6C(A6),A0
  140.         FMOVE.X    (A0),FP7
  141.         MOVEA.L    $0018(A6),A1
  142.         ADDA.L    $FFFFFF70(A6),A1
  143.         FMUL.X    (A1),FP7
  144.         FADD.X    $FFFFFFF4(A6),FP7
  145.         FMOVE.X    FP7,$FFFFFFF4(A6)
  146.  ;  File "mxmpy.f";  Line         23
  147.         ADDQ.L    #1,$FFFFFFA8(A6)
  148.         SUBQ.L    #1,D7
  149.         BGT.S    L10007
  150. L10008    EQU    *
  151.  ;  File "mxmpy.f";  Line         24
  152.         MOVE.L    $FFFFFFA0(A6),D1
  153.         SUB.L    $FFFFFFDC(A6),D1
  154.         ASL.L    #2,D1
  155.         MOVE.L    D1,D0
  156.         ADD.L    D1,D1
  157.         ADD.L    D0,D1
  158.         MOVE.L    $FFFFFFA4(A6),D2
  159.         SUB.L    $FFFFFFE8(A6),D2
  160.         MULS.L    $FFFFFFE4(A6),D2
  161.         ADD.L    D1,D2
  162.         MOVE.L    D2,$FFFFFF84(A6)
  163.         LEA        $FFFFFFF4(A6),A0
  164.         MOVEA.L    $0014(A6),A1
  165.         ADDA.L    $FFFFFF84(A6),A1
  166.         MOVE.L    (A0)+,(A1)+
  167.         MOVE.L    (A0)+,(A1)+
  168.         MOVE.L    (A0)+,(A1)+
  169.  ;  File "mxmpy.f";  Line         25
  170.         ADDQ.L    #1,$FFFFFFA4(A6)
  171.         SUBQ.L    #1,D6
  172.         BGT        L10005
  173. L10006    EQU    *
  174.  ;  File "mxmpy.f";  Line         26
  175.         ADDQ.L    #1,$FFFFFFA0(A6)
  176.         SUBQ.L    #1,D5
  177.         BGT        L10003
  178. L10004    EQU    *
  179.  ;  File "mxmpy.f";  Line         27
  180.         FMOVE    (SP)+,FP7
  181.         MOVEM.L    (SP)+,D5-D7
  182.         UNLK    A6
  183.         RTD        #$0018
  184.  ;  File "mxmpy.f";  Line         27
  185. PROCSTR    EQU    *
  186.         DC.W    $FFFF8006
  187.         DC.B    'MXMPY '
  188.         DC.W    $0000
  189. EXTDCONST    EQU        *
  190.         DC.W    $0000,$0000,$0000,$0000,$0000,$0000
  191.  
  192.         ENDPROC
  193.  
  194.  
  195.         END
  196.